/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.edu.upc.sigu.entities;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Usuario2
 */
@Entity
@Table(name = "seg_usuarios",  catalog= "sigu")
@NamedQueries({
    @NamedQuery(name = "Usuarios.findAll", query = "SELECT s FROM Usuarios s"),
    @NamedQuery(name = "Usuarios.findByUsuario", query = "SELECT s FROM Usuarios s WHERE s.usuario = :usuario"),
    @NamedQuery(name = "Usuarios.findByTipoUsuario", query = "SELECT s FROM Usuarios s WHERE s.tipoUsuario = :tipoUsuario"),
    @NamedQuery(name = "Usuarios.findByInstitucion", query = "SELECT s FROM Usuarios s WHERE s.institucion = :institucion"),
    @NamedQuery(name = "Usuarios.findByPersonal", query = "SELECT s FROM Usuarios s WHERE s.personal = :personal"),
    @NamedQuery(name = "Usuarios.findByAlumno", query = "SELECT s FROM Usuarios s WHERE s.alumno = :alumno"),
    @NamedQuery(name = "Usuarios.findByClave", query = "SELECT s FROM Usuarios s WHERE s.clave = :clave"),
    @NamedQuery(name = "Usuarios.findByFechaDesde", query = "SELECT s FROM Usuarios s WHERE s.fechaDesde = :fechaDesde"),
    @NamedQuery(name = "Usuarios.findByFechaHasta", query = "SELECT s FROM Usuarios s WHERE s.fechaHasta = :fechaHasta"),
    @NamedQuery(name = "Usuarios.findByFechaConneccion", query = "SELECT s FROM Usuarios s WHERE s.fechaConneccion = :fechaConneccion"),
    @NamedQuery(name = "Usuarios.findByCreacionUsuario", query = "SELECT s FROM Usuarios s WHERE s.creacionUsuario = :creacionUsuario"),
    @NamedQuery(name = "Usuarios.findByCreacionEstacion", query = "SELECT s FROM Usuarios s WHERE s.creacionEstacion = :creacionEstacion"),
    @NamedQuery(name = "Usuarios.findByCreacionFecha", query = "SELECT s FROM Usuarios s WHERE s.creacionFecha = :creacionFecha"),
    @NamedQuery(name = "Usuarios.findByControlUsuario", query = "SELECT s FROM Usuarios s WHERE s.controlUsuario = :controlUsuario"),
    @NamedQuery(name = "Usuarios.findByControlEstacion", query = "SELECT s FROM Usuarios s WHERE s.controlEstacion = :controlEstacion"),
    @NamedQuery(name = "Usuarios.findByControlFecha", query = "SELECT s FROM Usuarios s WHERE s.controlFecha = :controlFecha")})
public class Usuarios implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "usuario")
    private String usuario;
    @Column(name = "tipo_usuario")
    private Short tipoUsuario;
    @Column(name = "institucion")
    private Short institucion;
    @Column(name = "personal")
    private String personal;
    @Column(name = "alumno")
    private String alumno;
    @Column(name = "clave")
    private String clave;
    @Column(name = "fecha_desde")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaDesde;
    @Column(name = "fecha_hasta")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaHasta;
    @Column(name = "fecha_conneccion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaConneccion;
    @Column(name = "creacion_usuario")
    private String creacionUsuario;
    @Column(name = "creacion_estacion")
    private String creacionEstacion;
    @Column(name = "creacion_fecha")
    @Temporal(TemporalType.TIMESTAMP)
    private Date creacionFecha;
    @Column(name = "control_usuario")
    private String controlUsuario;
    @Column(name = "control_estacion")
    private String controlEstacion;
    @Column(name = "control_fecha")
    @Temporal(TemporalType.TIMESTAMP)
    private Date controlFecha;

    public Usuarios() {
    }

    public Usuarios(String usuario) {
        this.usuario = usuario;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public Short getTipoUsuario() {
        return tipoUsuario;
    }

    public void setTipoUsuario(Short tipoUsuario) {
        this.tipoUsuario = tipoUsuario;
    }

    public Short getInstitucion() {
        return institucion;
    }

    public void setInstitucion(Short institucion) {
        this.institucion = institucion;
    }

    public String getPersonal() {
        return personal;
    }

    public void setPersonal(String personal) {
        this.personal = personal;
    }

    public String getAlumno() {
        return alumno;
    }

    public void setAlumno(String alumno) {
        this.alumno = alumno;
    }

    public String getClave() {
        return clave;
    }

    public void setClave(String clave) {
        this.clave = clave;
    }

    public Date getFechaDesde() {
        return fechaDesde;
    }

    public void setFechaDesde(Date fechaDesde) {
        this.fechaDesde = fechaDesde;
    }

    public Date getFechaHasta() {
        return fechaHasta;
    }

    public void setFechaHasta(Date fechaHasta) {
        this.fechaHasta = fechaHasta;
    }

    public Date getFechaConneccion() {
        return fechaConneccion;
    }

    public void setFechaConneccion(Date fechaConneccion) {
        this.fechaConneccion = fechaConneccion;
    }

    public String getCreacionUsuario() {
        return creacionUsuario;
    }

    public void setCreacionUsuario(String creacionUsuario) {
        this.creacionUsuario = creacionUsuario;
    }

    public String getCreacionEstacion() {
        return creacionEstacion;
    }

    public void setCreacionEstacion(String creacionEstacion) {
        this.creacionEstacion = creacionEstacion;
    }

    public Date getCreacionFecha() {
        return creacionFecha;
    }

    public void setCreacionFecha(Date creacionFecha) {
        this.creacionFecha = creacionFecha;
    }

    public String getControlUsuario() {
        return controlUsuario;
    }

    public void setControlUsuario(String controlUsuario) {
        this.controlUsuario = controlUsuario;
    }

    public String getControlEstacion() {
        return controlEstacion;
    }

    public void setControlEstacion(String controlEstacion) {
        this.controlEstacion = controlEstacion;
    }

    public Date getControlFecha() {
        return controlFecha;
    }

    public void setControlFecha(Date controlFecha) {
        this.controlFecha = controlFecha;
    }


    @JoinColumn(name = "estado_registro", referencedColumnName = "estado_registro")
    @ManyToOne
    private EstadoRegistros estadoRegistros;

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (usuario != null ? usuario.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Usuarios)) {
            return false;
        }
        Usuarios other = (Usuarios) object;
        if ((this.usuario == null && other.usuario != null) || (this.usuario != null && !this.usuario.equals(other.usuario))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "pe.edu.upc.sigu.entities.Usuarios[usuario=" + usuario + "]";
    }

    /**
     * @return the estadoRegistros
     */
    public EstadoRegistros getEstadoRegistros() {
        return estadoRegistros;
    }

    /**
     * @param estadoRegistros the estadoRegistros to set
     */
    public void setEstadoRegistros(EstadoRegistros estadoRegistros) {
        this.estadoRegistros = estadoRegistros;
    }

}
